<?php
include_once '../gerenciadores/AutoloadGerenciadores.php';


class RepositorioDisciplina{
	private static $instancia;

	private function __construct(){
	}
	
	public static function getInstancia(){
		if(!isset(self::$instancia)){
			$c = _CLASS_;
			self::$instancia = new $c;
		}
		return self::$instancia;
	}
	
	
	public static function getTabelaDisciplina(){
		$sql = "SELECT * FROM `tdisciplina` ORDER by idcurso DESC, disciplina ASC;";
		__autoload("Conexao");
		$tabela = Conexao::tabelaSql($sql);
		
		
		$i=0;
		foreach ($tabela as $linha){
			$disciplina[$i] = new Disciplina();
			$disciplina[$i]->setIdDisciplina($linha["iddisciplina"]);
			$disciplina[$i]->setCurso(RepositorioCurso::getCurso($linha["idcurso"]));
			$disciplina[$i]->setNomeDisciplina($linha["disciplina"]);
			$disciplina[$i]->setSiglaDisciplina($linha["sigla"]);
			$disciplina[$i]->setCargaHoraria($linha["cargahoraria"]);
			$disciplina[$i]->setEmenta($linha["ementa"]);
			$disciplina[$i]->setConhecimento($linha["conhecimento"]);
			$disciplina[$i]->setHabilidade($linha["habilidade"]);
			$disciplina[$i]->setAtitude($linha["atitude"]);
			$disciplina[$i]->setBibliografia($linha["bibliografia"]);
			$i++;
		}
		return $disciplina;
	}
	
	public static function getTabelaDisciplinaPorCurso(Curso $curso){
		$sql = "SELECT * FROM `tdisciplina` WHERE idcurso = '".$curso->getIdCurso()."' ORDER by disciplina ASC;";
		__autoload("Conexao");
		$tabela = Conexao::tabelaSql($sql);
		$i=0;
		foreach ($tabela as $linha){
			__autoload("Disciplina");
			$disciplina[$i] = new Disciplina();
			$disciplina[$i]->setIdDisciplina($linha["iddisciplina"]);
			$disciplina[$i]->setCurso($curso);
			$disciplina[$i]->setNomeDisciplina($linha["disciplina"]);
			$disciplina[$i]->setSiglaDisciplina($linha["sigla"]);
			$disciplina[$i]->setCargaHoraria($linha["cargahoraria"]);
			$disciplina[$i]->setEmenta($linha["ementa"]);
			$disciplina[$i]->setConhecimento($linha["conhecimento"]);
			$disciplina[$i]->setHabilidade($linha["habilidade"]);
			$disciplina[$i]->setAtitude($linha["atitude"]);
			$disciplina[$i]->setBibliografia($linha["bibliografia"]);
			$i++;
		}
		if(isset($disciplina)){
			return $disciplina;
		}
	}
	
	public static function getDisciplina($idDisciplina){
		if($idDisciplina instanceof Disciplina){
			$idDisciplina = $idDisciplina->getIdDisciplina();
		}
		$disciplina = new Disciplina();
		$sql = "SELECT * 
				FROM `tdisciplina`
				INNER JOIN tcursos ON (tcursos.idcurso = tdisciplina.iddisciplina) 
				WHERE iddisciplina LIKE '".$idDisciplina."';";
		__autoload("Conexao");

		$tabela = Conexao::tabelaSql($sql);
		
		foreach ($tabela as $linha){
			$curso = new Curso();
			$curso->setSiglaCurso("siglacurso");
			$curso->setNomeCurso("nomecurso");
			$curso->setIdCurso("idcurso");
			
			$disciplina->setIdDisciplina($idDisciplina);
			$disciplina->setCurso($curso);
			$disciplina->setNomeDisciplina($linha["disciplina"]);
			$disciplina->setSiglaDisciplina($linha["sigla"]);
			$disciplina->setCargaHoraria($linha["cargahoraria"]);
			$disciplina->setBibliografia($linha["bibliografia"]);
		}
		
		
		return $disciplina;
	}
	
	public static function adicionaDisciplina(Disciplina $disciplina){
		
		$sql = "INSERT INTO `tdisciplina`(`idcurso`, `disciplina`, `sigla`, `cargahoraria`, `ementa`, `conhecimento`, `habilidade`, `atitude`, `bibliografia`) 
				VALUES ('".$disciplina->getCurso()->getIdCurso()."','".$disciplina->getNomeDisciplina()."','".$disciplina->getSiglaDisciplina().
				"','".$disciplina->getCargaHoraria()."','".$disciplina->getEmenta()."','".$disciplina->getConhecimento()."','".$disciplina->getHabilidade()."','".$disciplina->getAtitude()."', '".$disciplina->getBibliografia()."' );";
		
		__autoload("Conexao");
		__autoload("DisciplinaCadastraException");
		try{
			Conexao::executaSql($sql);
		}catch (DisciplinaCadastraException $e){
			throw $e;
		}
	}
	
	public static function alteraDisciplina(Disciplina $disciplina){
		$sql = "UPDATE `tdisciplina` SET `ementa`='".$disciplina->getEmenta()."',`conhecimento`='".$disciplina->getConhecimento()."',`habilidade`='".$disciplina->getHabilidade()."',`atitude`='".$disciplina->getAtitude()."',`bibliografia`='".$disciplina->getBibliografia()."' WHERE iddisciplina = '".$disciplina->getIdDisciplina()."';";
		
		__autoload("Conexao");
		try{
			Conexao::executaSql($sql);
		}catch (DisciplinaAtualizaException $e){
			throw $e;
		}

	}
	

}

?>